package com.mryunqi.wentianbot.utils;

import gui.ava.html.image.generator.HtmlImageGenerator;
import lombok.extern.slf4j.Slf4j;
import org.thymeleaf.TemplateEngine;
import org.thymeleaf.context.Context;

import java.util.Map;

/**
 * @author mryunqi
 * @date 2023/6/8
 */
@Slf4j
public class ImageUtil {
    /**
    * @Author: mryunqi
    * @Description: 将html转换成图片
    * @DateTime: 2023/6/8 21:15
    * @Params:  templateEngine 模板引擎   templateName 模板名称     variables 模板里面的变量     filePath 生成图片的路径
    */
    public static void saveAsImage(TemplateEngine templateEngine, String templateName, Map<String,Object> variables, String filePath){
        // 声明一个上下文对象，里面放入要存到模板里面的数据
        final Context context = new Context();
        context.setVariables(variables);
        //imageHtml为获取的html源码字符串
        String imageHtml = templateEngine.process(templateName, context);
        HtmlImageGenerator imageGenerator = new HtmlImageGenerator();
        try {
            imageGenerator.loadHtml(imageHtml);
            Thread.sleep(100);
            imageGenerator.getBufferedImage();
            Thread.sleep(200);
            imageGenerator.saveAsImage(filePath);

        } catch (Exception e) {
            e.printStackTrace();
            throw new RuntimeException("将HTML文件转换成图片异常");
        }
    }

}
